// Copyright (C) 2023 即时通讯网(52im.net) & Jack Jiang.
// The RainbowChat Project. All rights reserved.
// 
// 【本产品为著作权产品，合法授权后请放心使用，禁止外传！】
// 【本次授权给：<北京小羊驼科技有限公司>，授权编号：<NT231212144350>，代码指纹：<A.702363430.550>，技术对接人微信：<ID: wxid_wbyootvkdcgj22>】
// 【授权寄送：<收件：苏先生、地址：北京市大兴区北京密码西区6号楼1单元301、电话：18613885610、邮箱：bd@huiyuanxiang-inc.com>】
// 
// 【本系列产品在国家版权局的著作权登记信息如下】：
// 1）国家版权局登记名(简称)和权证号：RainbowChat    （证书号：软著登字第1220494号、登记号：2016SR041877）
// 2）国家版权局登记名(简称)和权证号：RainbowChat-Web（证书号：软著登字第3743440号、登记号：2019SR0322683）
// 3）国家版权局登记名(简称)和权证号：RainbowAV      （证书号：软著登字第2262004号、登记号：2017SR676720）
// 4）国家版权局登记名(简称)和权证号：MobileIMSDK-Web（证书号：软著登字第2262073号、登记号：2017SR676789）
// 5）国家版权局登记名(简称)和权证号：MobileIMSDK    （证书号：软著登字第1220581号、登记号：2016SR041964）
// * 著作权所有人：江顺/苏州网际时代信息科技有限公司
// 
// 【违法或违规使用投诉和举报方式】：
// 联系邮件：jack.jiang@52im.net
// 联系微信：hellojackjiang
// 联系QQ号：413980957
// 授权说明：http://www.52im.net/thread-1115-1-1.html
// 官方社区：http://www.52im.net
package com.eva.framework.utils;

import com.eva.epc.common.util.EException;

/**
 * <p>
 * 一些典型异常的实用工厂类.
 * </p>
 * 
 * @author Jack Jiang(http://www.52im.net/space-uid-1.html)
 * @version 1.0
 */
public class EndsExceptionFactory
{
	/** 无效的PROCESSOR_ID */
	public static final EException INVALID_PROCESSOR_ID(int PROCESSOR_ID) 
	{
		return new EException("服务端找不到对应的处理器,本次操作失败."
				, "无效的PROCESSOR_ID, PROCESSOR_ID="+PROCESSOR_ID+"!");
	}
	/** 无效的JOB_DISPATCHER_ID */
	public static final EException INVALID_JOB_DISPATCHER_ID(int JOB_DISPATCHER_ID)
	{
		return new EException("服务端找不到对应的调度器,本次操作失败."
				, "无效的JOB_DISPATCHER_ID, JOB_DISPATCHER_ID="+JOB_DISPATCHER_ID+"!");
	}
	/** 无效的ACTION_ID */
	public static final EException INVALID_ACTION_ID(int ACTION_ID)
	{
		return new EException("服务端找不到对应的处理动作,本次操作失败."
				, "无效的ACTION_ID, ACTION_ID="+ACTION_ID+"!");
	}

	/** 无效的token */
	public static final EInvalidTokenException INVALID_TOKEN(String token)
	{
		return new EInvalidTokenException("无效的token，本次请求已被拒绝服务！", "无效的token="+token+"!");
	}
	
//	/**
//	 * 登陆用户会话超时或失效
//	 * @exception ExceptionProvider.ESessionTimeoutException for session timeout. */
//	public static final EException USER_SESSION_TIMEOUT()
//	{
//		return new ESessionTimeoutException("由于会话已正常失效, 请请新登陆后再行操作."
//				, new StringBuilder("当前会话已失效，<b>原因可能是</b>：")
//							.append("<br>1) 您已经登陆过，但服务器在稍后进行过重新启动; ")
//							.append("<br>2) 您已登陆但因长时间未作任何操作服务器为了减少服务开支而中断了与你的会话;")
//							.append("<br>3) 其它原因.")
//							.append("<br><b>解决方法：</b>请重新登陆，谢谢.").toString());
//	}
	
	/** 登陆时用户名密码有误将出现该提示 */
	public static final EException INVALID_USER(String login_name)
	{
		return new EException("账号和密码可能不正确，登陆失败， 请重试."
				, new StringBuilder("用户名")
				.append(login_name)
				.append("本次登陆失败 ，<b>原因可能是</b>：")
				.append("<br>1) 用户名不存在; ")
				.append("<br>2) 用户名存在但已经被管理员设置成无效（此状态下将会禁止登陆）;")
				.append("<br>3) 用户名存在，查您输错了密码.")
				.append("<br><b>解决方法：</b>请确认无误后再试或联系系统管理员核实，谢谢.").toString());
	}

	/**
	 * 用于用户登陆成功后的会话超时时.
	 *
	 * @author Jack Jiang, 2013-08-25
	 * @version 1.0
	 */
	public static class EInvalidTokenException extends EException
	{
		public EInvalidTokenException(String message)
		{
			super(message);
		}
		public EInvalidTokenException(String shortMessage, String message)
		{
			super(shortMessage, message);
		}
		public EInvalidTokenException(String shortMessage, String message, Throwable cause)
		{
			super(shortMessage, message, cause);
		}
	}
	
	
//	/**
//	 * 用于用户登陆成功后的会话超时时.
//	 *
//	 * @author Jack Jiang, 2013-08-25
//	 * @version 1.0
//	 */
//	public static class ESessionTimeoutException extends EException
//	{
//		public ESessionTimeoutException(String message)
//		{
//			super(message);
//		}
//		public ESessionTimeoutException(String shortMessage, String message)
//		{
//			super(shortMessage, message);
//		}
//		public ESessionTimeoutException(String shortMessage, String message, Throwable cause)
//		{
//			super(shortMessage, message, cause);
//		}
//	}
}